#随机生成两个介于100和2000之间的整数，通过穷举法分别求出两个整数的所有因数，将分解的结果分别存储在两个集合中并输出
import numpy as np
n1 = np.random.randint(100, 2000)
n2 = np.random.randint(100, 2000)

def search(a):
    factors = set()
    for i in np.arange(1, a + 1):
        if a % i == 0:
            factors.add(i)
    return factors

factors1 = search(n1)
factors2 = search(n2)

print(f"{n1} 的因数集合：{factors1}")
print(f"{n2} 的因数集合：{factors2}")

#判断两个整数中是否有素数并输出
def judge(a):
    global flag
    factors = search(a)
    if len(factors) == 2:
        flag = 0
        print("随机生成数的素数是{}".format(a))
        return flag
flag = 1
judge(n1)
judge(n2)
if flag == 1:
    print("随机生成数中没有素数")

#求出两个整数所有的公因数
arr1 = np.array(list(factors1))
arr2 = np.array(list(factors2))
common_factor = np.intersect1d(arr1, arr2)
print("两个数的公因数：")
print(common_factor)
print("两个数的最大公因数是：{}".format(max(common_factor)))
if max(common_factor) == 1:
    print(f"{n1} 和 {n2} 互素。")